package com.grechur.wanandroidcompose.http.service

import com.grechur.wanandroidcompose.bean.BaseData
import com.grechur.wanandroidcompose.bean.article.Article
import com.grechur.wanandroidcompose.bean.article.ArticlesBean
import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path

interface CollectService {

    /**
     * 收藏文章列表
     */
    @GET("/lg/collect/list/{index}/json")
    suspend fun getCollectArticles(@Path("index") index: Int?): ArticlesBean

    /**
     * 收藏站内文章
     */
    @POST("/lg/collect/{cid}/json")
    suspend fun collectArticle(@Path("cid") cid: Int?): BaseData<Any>

    /**
     * 收藏站外文章
     */
    @FormUrlEncoded
    @POST("/lg/collect/add/json")
    suspend fun collectOtherArticle(
        @Field("title") title: String?,
        @Field("author") author: String?,
        @Field("link") link: String?,
    ): BaseData<Any>

    /**
     * 编辑收藏的文章，支持站内，站外
     */
    @FormUrlEncoded
    @POST("lg/collect/user_article/update/{cid}/json")
    suspend fun updateCollect(
        @Path("cid") cid: Int?,
        @Field("title") title: String?,
        @Field("author") author: String?,
        @Field("link") link: String?,
    ): BaseData<Any>

    /**
     *取消收藏 文章列表
     */
    @POST("/lg/uncollect_originId/{id}/json")
    suspend fun unCollectArticle(@Path("id") cid: Int?): BaseData<Any>

    /**
     *取消收藏 我的收藏页面（该页面包含自己录入的内容）
     */
    @FormUrlEncoded
    @POST("/lg/uncollect/{id}/json")
    suspend fun unCollectList(
        @Path("id") cid: Int?,
        @Field("originId") originId: Int? = -1,
    ): BaseData<Any>


    /**
     * 收藏网站列表
     */
    @GET("/lg/collect/usertools/json")
    suspend fun collectWebList(): BaseData<List<Article>>

    /**
     * 收藏网址
     * name,link
     */
    @FormUrlEncoded
    @POST("/lg/collect/addtool/json")
    suspend fun collectWeb(
        @Field("name") name: String?,
        @Field("link") link: String?,
    ): BaseData<Any>

    /**
     * 编辑收藏网站
     * id,name,link
     */
    @FormUrlEncoded
    @POST("/lg/collect/updatetool/json")
    suspend fun updateCollectWeb(
        @Field("id") id: Int?,
        @Field("name") name: String?,
        @Field("link") link: String?,
    ): BaseData<Any>

    /**
     * 删除收藏网站
     * id
     */
    @FormUrlEncoded
    @POST("/lg/collect/deletetool/json")
    suspend fun deleteCollectWeb(@Field("id") id: Int?): BaseData<Any>
}